package main

import (
	"log"

	"github.com/goburrow/serial"
)

func main() {
	// 配置串口参数
	config := &serial.Config{
		Address:  "/dev/rs485-3", // 串口名称，根据实际情况修改
		BaudRate: 4800,           // 波特率，根据设备要求设置
		DataBits: 8,              // 数据位
		Parity:   "N",            // 校验位(N表示无校验)
		StopBits: 1,              // 停止位
		Timeout:  1000,           // 读取超时(毫秒)
	}

	// 打开串口
	port, err := serial.Open(config)
	if err != nil {
		log.Fatal(err)
	}
	defer port.Close()

	log.Println("RS485监听程序已启动，正在监听数据...")

	buf := make([]byte, 128)
	for {
		// 读取数据
		n, err := port.Read(buf)
		if err != nil {
			//log.Printf("读取错误: %v\n", err)
			continue
		}

		if n > 0 {
			// 打印接收到的数据
			log.Printf("接收到数据: % X\n", buf[:n])
			log.Printf("ASCII格式: %s\n", string(buf[:n]))
		}
	}
}
